var Tpl = Ext.extend(Ext.Panel, {
	border : false,
	layout : 'fit',
	initComponent : function() {
		this.initGrid();
		this.items = [this.grid];
		Tpl.superclass.initComponent.call(this);
	},
	initGrid : function() {
		var me = this;
		this.grid = new Ext.grid.GridPanel({
					region : 'center',
					border : false,
					loadMask : true,
					viewConfig : {
						forceFit : true
					},
					tbar : new Ext.Toolbar({
								items : [{
											text : '新增',
											iconCls : 'icon-add',
											handler : function() {
												me.addOrUpdate(true);
											}
										}, {
											text : '修改',
											iconCls : 'icon-update',
											handler : function() {
												me.addOrUpdate();
											}
										}, '-', {
											text : '下载',
											iconCls : 'icon-download',
											handler : function() {
												me.downloadTpl();
											}
										}]
							}),
					store : new Ext.data.JsonStore({
								fields : ['tplid', 'tplname'],
								url : My.url('/system/common/queryBySql.do'),
								baseParams : {
									sql : "select tplid,tplname from t_report_tpl"
								},
								root : 'data',
								autoLoad : true
							}),
					sm : new Ext.grid.RowSelectionModel(),
					cm : new Ext.grid.ColumnModel({
								columns : [new Ext.grid.RowNumberer(), {
											dataIndex : 'tplname',
											header : '模板名称'
										}]
							}),
					getRecord : function() {
						return this.getSelectionModel().getSelected();
					}
				});
	},
	addOrUpdate : function(isAdd) {
		var me = this;
		var rec = this.grid.getRecord();
		if (!isAdd) {
			if (!rec) {
				TopMy.alert('请选择要修改的记录！');
				return;
			}
		}
		var form = new TopExt.FormPanel({
			padding : 5,
			border : false,
			fileUpload : true,
			labelAlign : 'right',
			labelWidth : 70,
			defaults : {
				xtype : 'textfield',
				anchor : '100%'
			},
			items : [{
						xtype : 'hidden',
						name : 'tplid'
					}, {
						xtype : 'fileuploadfield',
						name : 'excel_tpl',
						fieldLabel : 'Excel模板',
						buttonText : '',
						buttonCfg : {
							iconCls : 'icon-upload'
						},
						allowBlank : !isAdd,
						listeners : {
							'fileselected' : function(fb, v) {
								var suffix = v.substr(v.lastIndexOf('.') + 1);
								if (suffix != 'xls' && suffix != 'xlsx') {
									TopMy.alert('请选择Excel格式的模板文件');
									fb.reset();
									return;
								}
								var tplname = v.substr(v.lastIndexOf('\\') + 1);
								fb.nextSibling().setValue(tplname);
							}
						}
					}, {
						name : 'tplname',
						fieldLabel : '模板名称',
						allowBlank : false
					}],
			listeners : {
				afterrender : function(t) {
					if (!isAdd) {
						t.getForm().loadRecord(rec);
					}
				}
			}
		});
		var uploadWin = new TopExt.Window({
					title : '上传Excel模板',
					width : 420,
					autoHeight : true,
					modal : true,
					items : [form],
					buttons : [{
								text : '保存',
								iconCls : 'icon-save',
								handler : function() {
									var url = My.url('/report/addTpl.do');
									if (!isAdd) {
										url = My.url('/report/udpateTpl.do');
									}
									TopMy.submit(form, {
												url : url,
												successCallback : function() {
													me.grid.getStore().reload();
													uploadWin.close();
												}
											});
								}
							}, {
								text : '取消',
								iconCls : 'icon-cancel',
								handler : function() {
									uploadWin.close();
								}
							}]
				}).show();
	},
	downloadTpl : function() {
		var rec = this.grid.getRecord();
		if (!rec) {
			My.alert('请选择要下载的模板文件！');
			return;
		}
		var form = new Ext.form.FormPanel({
					border : false,
					padding : 5,
					labelWidth : 70,
					standardSubmit : true,
					url : My.url('/report/downloadTpl.htm'),
					items : [{
								xtype : 'hidden',
								name : 'tplid',
								value : rec.data.tplid
							}]
				});
		new Ext.Window({
					title : '下载Excel模板',
					width : 300,
					autoHeight : true,
					modal : true,
					items : [form]
				}).show(false, function(w) {
					form.getForm().submit();
					w.close();
				});
	}
});

Ext.onReady(function() {
			new Ext.Viewport({
						layout : 'fit',
						items : [new Tpl()]
					});
		});